package cn.wolfcode.luowowo.member.service;

import cn.wolfcode.luowowo.common.util.AjaxResult;
import cn.wolfcode.luowowo.member.domain.UserInfo;

import java.util.List;
import java.util.Set;

public interface IUserInfoService {

    /**
     * 检查手机号是否注册
     * @param phone
     * @return true可以注册
     */
    boolean checkPhone(String phone);

    /**
     * 用户注册
     * @param phone
     * @param nickname
     * @param verifyCode
     * @param password
     * @param rpassword
     * @return 返回操作的结果
     */
    AjaxResult userRegist(String phone, String nickname, String verifyCode, String password, String rpassword);

    /**
     * 用户登录
     * @param phone
     * @param password
     * @return
     */
    AjaxResult userLogin(String phone, String password);

    /**
     * 查询所有用户
     * @return
     */
    List<UserInfo> list();

    /**修改用户信息
     * @param user
     */
    void update(UserInfo user);

    UserInfo getUser(Long id);

    void updateHeadImgUrl(String upload,Long id);

    UserInfo get(Long userId);

    /**
     * 按金牌数倒序查询用户
     * @return
     */
    List<UserInfo> listTop10();

    /**
     * 查询出排行榜的用户
     * @param userIds
     * @return
     */
    List<UserInfo> listByUserIds(List<Long> userIds);

    /**
     * 修改用户的排行榜数据
     * @param userInfo
     */
    void updateRanking(UserInfo userInfo);


    /**修改 手机或 邮箱 或密码
     * @param user
     */
    void updateUser(UserInfo user);

    /**修改 用户手机号
     * @param id
     * @param phone
     */
    void updateUserPhone(Long id, String phone);

    String getUserPassword(Long id);
}
